package cc.abanlee.module.system.api.oauth2;

import cc.abanlee.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
import cc.abanlee.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import cc.abanlee.module.system.service.oauth2.OAuth2TokenService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @author: create by
 * @version: v1.0
 * @description:
 * @date:2022/9/7
 */
@Service
public class OAuth2TokenApiImpl implements OAuth2TokenApi{


    @Resource
    private OAuth2TokenService oauth2TokenService;
    @Override
    public OAuth2AccessTokenCheckRespDTO checkAccessToken(String accessToken) {

        OAuth2AccessTokenDO bean = oauth2TokenService.checkAccessToken(accessToken);
        if ( bean == null ) {
            return null;
        }

        OAuth2AccessTokenCheckRespDTO oAuth2AccessTokenCheckRespDTO = new OAuth2AccessTokenCheckRespDTO();

        oAuth2AccessTokenCheckRespDTO.setUserId( bean.getUserId() );
        oAuth2AccessTokenCheckRespDTO.setUserType( bean.getUserType() );
     //   oAuth2AccessTokenCheckRespDTO.setTenantId( bean.getTenantId() );
        List<String> list = bean.getScopes();
        if ( list != null ) {
            oAuth2AccessTokenCheckRespDTO.setScopes( new ArrayList<String>( list ) );
        }

        return oAuth2AccessTokenCheckRespDTO;
    }
}
